home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-28 | 1.9 KB | 57 lines | [TEXT/CWIE] |
- // RedBlackLinkTree.h
-
- #ifndef RedBlackLinkTree_h
- #define RedBlackLinkTree_h
-
- #ifndef RedBlackKeyTree_h
- #include "RedBlackKeyTree.h"
- #endif
-
- template < class Key, class Content > class RedBlackLink;
-
- template < class Key, class Content >
- class RedBlackLinkTree: private RedBlackKeyTree<Key>
- {
- friend class RedBlackLink< Key, Content >;
-
- typedef RedBlackLink< Key, Content > Node;
- typedef RedBlackKey<Key> NodeBase;
- typedef RedBlackKeyTree<Key> TreeBase;
-
- private:
- static Node *DownCast( NodeBase *n );
- static const Node *DownCast( const NodeBase *n );
-
- public:
- void Add( Node& n ) { TreeBase::Add( n ); }
- void Remove( Node& n ) { TreeBase::Remove( n ); }
-
- TreeBase::RemoveAll;
- TreeBase::IsEmpty;
-
- Node *Root() { return DownCast( TreeBase::Root() ); }
- const Node *Root() const { return DownCast( TreeBase::Root() ); }
-
- Node *First() { return DownCast( TreeBase::First() ); }
- const Node *First() const { return DownCast( TreeBase::First() ); }
-
- Node *Last() { return DownCast( TreeBase::Last() ); }
- const Node *Last() const { return DownCast( TreeBase::Last() ); }
-
- Node *First( const Key& k ) { return DownCast( TreeBase::First( k ) ); }
- const Node *First( const Key& k ) const { return DownCast( TreeBase::First( k ) ); }
-
- Node *Last( const Key& k ) { return DownCast( TreeBase::Last( k ) ); }
- const Node *Last( const Key& k ) const { return DownCast( TreeBase::Last( k ) ); }
-
- Node *Find( const Key& k ) { return DownCast( TreeBase::Find( k ) ); }
- const Node *Find( const Key& k ) const { return DownCast( TreeBase::Find( k ) ); }
-
- Node& operator[]( const Key& k ) { return *DownCast( &TreeBase::operator[]( k ) ); }
- const Node& operator[]( const Key& k ) const { return *DownCast( &TreeBase::operator[]( k ) ); }
-
- TreeBase::Valid;
- };
-
- #endif
-